package com.sq.partner.manager.service.impl;


import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;

import com.sq.partner.manager.service.FacadeAppFormExtendService;
import com.sq.partner.manager.util.LogUtil;
@Service
public class FacadeAppFormExtendServiceImpl implements
		FacadeAppFormExtendService {
	
	private static Logger logger = LogUtil.getLog(FacadeAppFormExtendServiceImpl.class);
	
//	@Resource
//	TradAgentInfoDao tradAgentInfoDao;
//
//	@Resource
//	TradInsuPlanDao tradInsuPlanDao;
//
//	@Resource
//	FacadeTempPolicyService facadeTempPolicyService;
//
//	@Resource
//	FacadeAppFormService facadeAppFormService;
//
//	@Resource
//	FacadeAppApplicantService  facadeAppApplicantService;
//
//	@Resource
//	FacadeTempPolicyDao facadeTempPolicyDao;
//
//	@Resource
//	FacadeAppFormDao facadeAppFormDao;
//
//	@Resource
//	FacadeAppApplicantDao facadeAppApplicantDao;
//
//	@Resource
//	FacadeAppFormExtendDao facadeAppFormExtendDao;
//	
//	@Resource
//	FacadeAppInsuredService facadeAppInsuredService;
//	
//	@Resource
//	FacadeAppInsuredDao facadeAppInsuredDao;
//	
//	@Resource
//	NLifePlanService nLifePlanService;
//	
//	@Resource
//	NLifePlanDao 	nLifePlanDao;
//	@Override
//	public String saveOrUpdateAppFormExtendTempPolicy(HttpServletRequest request,FacadeAppForm facadeAppForm, FacadeAppApplicant facadeAppApplicant,
//			List<FacadeAppInsured> appInsuredList, FacadeAppFormExtend appformExtend,FacadeUser facadeUser, String facadeAppType, String groupId)	throws Exception {
//		
//		//获取出单机构
//		if(("3").equals(facadeUser.getUserType())||("4").equals(facadeUser.getUserType())){
//			TradAgentInfo tradAgentInfo=null;
//			if(("4").equals(facadeUser.getUserType())){
//				tradAgentInfo= tradAgentInfoDao.queryTradAgentInfoBySubChannelCodeAndChannelCode(facadeUser.getSubChannelCode(),facadeUser.getFkChannelCode());
//			}else{
//				tradAgentInfo= tradAgentInfoDao.queryTradAgentInfoByUserCodeAndChannelCode(facadeUser.getUserCode(),facadeUser.getFkChannelCode());
//			}
//			if(null==tradAgentInfo||StrUtil.isEmpty(tradAgentInfo.getDptCde())){
//				throw new AppException("方案有误，请联系管理员！");
//			}
//			facadeAppForm.setDeptNo(tradAgentInfo.getDptCde());
//			facadeAppForm.setInputEmp(tradAgentInfo.getEmpNo());
//		}else{
//			TradInsuPlan tradInsuPlan= tradInsuPlanDao.queryInsuPlan(facadeAppForm.getInsuPlanNo());
//			if(null==tradInsuPlan||StrUtil.isEmpty(tradInsuPlan.getDptCde())){
//				throw new AppException("方案有误，请联系管理员！");
//			}
//			facadeAppForm.setDeptNo(tradInsuPlan.getDptCde());
//			facadeAppForm.setInputEmp(tradInsuPlan.getEmpNo());
//		}
//		facadeAppForm.setPartnerNo(facadeUser.getFkChannelCode());
//		facadeAppForm.setPartneSaleNo(facadeUser.getSubChannelCode());
//		
//		//根据方案号查询对应产品的是否见费
//		TradInsuPlanRefProd tradInsuPlan= tradInsuPlanDao.queryInsuPlanByInsuNo(facadeAppForm.getInsuPlanNo());
//		String isSeeMoney = "1".equals(tradInsuPlan.getIsSeeMoney()) ? "1" : "0";
//		FacadeTempPolicy facadeTempPolicy= new FacadeTempPolicy();
//		facadeTempPolicy.setPartnerNo(facadeUser.getFkChannelCode());
//		facadeTempPolicy.setPartnerSaleNo(facadeUser.getSubChannelCode());
//		String remarks="";
//		if(StrUtil.isEmpty(appformExtend.getPlateNum())){
//			if(StrUtil.isNotEmpty(appformExtend.getChassisNum())){
//				remarks = appformExtend.getChassisNum();
//			}
//		}else{
//			if(StrUtil.isEmpty(appformExtend.getChassisNum())){
//				remarks = appformExtend.getPlateNum();
//			}else{
//				remarks = appformExtend.getPlateNum()+"/"+appformExtend.getChassisNum();
//			}
//		}
//		facadeTempPolicy.setRemarks(remarks);
//		if(StrUtil.isEmpty(facadeAppForm.getStagNo())){
//			//查询合作伙伴和所属机构  PARTNER_NO DPT_CDE
//			facadeTempPolicy.setStatus(Constants.POL_STATUS_01);
//			facadeTempPolicy.setOperator(facadeUser.getUserCode());
//			facadeTempPolicy.setInputFate(new Date());
//			facadeTempPolicy.setGroupId(Long.parseLong(groupId));
//			facadeTempPolicy.setFacadeAppType(facadeAppType);
//			facadeTempPolicy.setProdType(Constants.PROD_TYPE_LIFE);
//			facadeTempPolicy.setIsSeeMoney(isSeeMoney);
//
//			//添加暂存单
//			facadeTempPolicy=facadeTempPolicyService.saveFacadeTempPolicy(facadeTempPolicy);
//			logger.info("暂存单:"+facadeTempPolicy.getStagNo()+"生成");
//			
//			//添加投保单
//			facadeAppForm.setStagNo(facadeTempPolicy.getStagNo());
//			facadeAppForm=facadeAppFormService.saveFacadeAppForm(facadeAppForm);
//
//			//得到投保单号
//			String appNo=facadeAppForm.getAppNo();
//			logger.info("投保单:"+appNo+"生成");
//
//			//持久化投保人
//			facadeAppApplicant.setAppNo(appNo);
//			facadeAppApplicantService.saveFacadeAppApplicant(facadeAppApplicant);
//
//			//持久化被保人
//			if(appInsuredList.size()>0){
//				for(FacadeAppInsured insured:appInsuredList){
//					insured.setAppNo(appNo);
//					facadeAppInsuredService.saveFacadeAppInsured(insured);
//				}
//			}
//
//			//保存驾乘险信息
//			appformExtend.setAppNo(appNo);
//			facadeAppFormExtendDao.saveFacadeAppFormExtend(appformExtend);
//			
//			logger.info("暂存表,投保单表,被保人表,投保人表,驾乘险表插入成功");
//			
//			return facadeTempPolicy.getStagNo()+","+appNo;
//		}else{
//			//修改暂存单
//			facadeTempPolicy.setStagNo(facadeAppForm.getStagNo());
//			facadeTempPolicy.setIsSeeMoney(isSeeMoney);
//			facadeTempPolicy.setUpdateTime(DateUtil.getNowTimestamp());
//			facadeTempPolicyDao.updateTempPolicyNotNull(facadeTempPolicy);
//			
//			//修改投保单
//			facadeAppFormDao.updateFacadeAppFormNotNull(facadeAppForm);
//			
//			//修改被保人，因被保人信息无法编辑，且其个数需与座位数相同，所以每次走修改的逻辑将先删除当前投保单所有被保人，并重新添加
//			facadeAppInsuredDao.delFacadeAppInsuredByAppNo(facadeAppForm.getAppNo());
//			
//			//持久化被保人
//			if(appInsuredList.size()>0){
//				for(FacadeAppInsured insured:appInsuredList){
//					insured.setAppNo(facadeAppForm.getAppNo());
//					facadeAppInsuredService.saveFacadeAppInsured(insured);
//				}
//			}
//
//			//修改投保人
//			facadeAppApplicantDao.updateFacadeAppApplicantNotNull(facadeAppApplicant);
//
//			//修改驾乘险信息
//			facadeAppFormExtendDao.updateFacadeAppFormExtend(appformExtend);
//			
//			return "";
//		}
//		
//	}
//
//	public String saveOrUpdateAppNlifeFormExtendTempPolicy(HttpServletRequest request,FacadeAppForm facadeAppForm, FacadeAppApplicant facadeAppApplicant,
//			List<FacadeAppInsured> appInsuredList, FacadeAppFormExtend appformExtend,FacadeUser facadeUser, String facadeAppType, String groupId)	throws Exception {
//		
//		//获取出单机构
//		if(("3").equals(facadeUser.getUserType())||("4").equals(facadeUser.getUserType())){
//			TradAgentInfo tradAgentInfo=null;
//			if(("4").equals(facadeUser.getUserType())){
//				tradAgentInfo= tradAgentInfoDao.queryTradAgentInfoBySubChannelCodeAndChannelCode(facadeUser.getSubChannelCode(),facadeUser.getFkChannelCode());
//			}else{
//				tradAgentInfo= tradAgentInfoDao.queryTradAgentInfoByUserCodeAndChannelCode(facadeUser.getUserCode(),facadeUser.getFkChannelCode());
//			}
//			if(null==tradAgentInfo||StrUtil.isEmpty(tradAgentInfo.getDptCde())){
//				throw new AppException("方案有误，请联系管理员！");
//			}
//			facadeAppForm.setDeptNo(tradAgentInfo.getDptCde());
//			facadeAppForm.setInputEmp(tradAgentInfo.getEmpNo());
//		}else{
//			NlifePlan tradInsuPlan= nLifePlanService.queryNLifePlanByPlanNo(facadeAppForm.getInsuPlanNo());
//			if(null==tradInsuPlan||StrUtil.isEmpty(tradInsuPlan.getDptCde())){
//				throw new AppException("方案有误，请联系管理员！");
//			}
//			facadeAppForm.setDeptNo(tradInsuPlan.getDptCde());
//			facadeAppForm.setInputEmp(tradInsuPlan.getEmpNo());
//		}
//		facadeAppForm.setPartnerNo(facadeUser.getFkChannelCode());
//		facadeAppForm.setPartneSaleNo(facadeUser.getSubChannelCode());
//		
//		//根据方案号查询对应产品的是否见费
//		NlifePlan tradInsuPlan= nLifePlanDao.queryInsuPlanByInsuNo(facadeAppForm.getInsuPlanNo());
//		String isSeeMoney =null;
//		if("1".equals(tradInsuPlan.getIsSeeMoney()) || "Y".equals(tradInsuPlan.getIsSeeMoney())){
//			isSeeMoney ="1";
//		}else{
//			isSeeMoney ="0";
//		}
//		FacadeTempPolicy facadeTempPolicy= new FacadeTempPolicy();
//		facadeTempPolicy.setPartnerNo(facadeUser.getFkChannelCode());
//		facadeTempPolicy.setPartnerSaleNo(facadeUser.getSubChannelCode());
//		String remarks="";
//		if(StrUtil.isEmpty(appformExtend.getPlateNum())){
//			if(StrUtil.isNotEmpty(appformExtend.getChassisNum())){
//				remarks = appformExtend.getChassisNum();
//			}
//		}else{
//			if(StrUtil.isEmpty(appformExtend.getChassisNum())){
//				remarks = appformExtend.getPlateNum();
//			}else{
//				remarks = appformExtend.getPlateNum()+"/"+appformExtend.getChassisNum();
//			}
//		}
//		facadeTempPolicy.setRemarks(remarks);
//		if(StrUtil.isEmpty(facadeAppForm.getStagNo())){
//			//查询合作伙伴和所属机构  PARTNER_NO DPT_CDE
//			facadeTempPolicy.setStatus(Constants.POL_STATUS_01);
//			facadeTempPolicy.setOperator(facadeUser.getUserCode());
//			facadeTempPolicy.setInputFate(new Date());
//			facadeTempPolicy.setGroupId(Long.parseLong(groupId));
//			facadeTempPolicy.setFacadeAppType(facadeAppType);
//			facadeTempPolicy.setProdType(Constants.PROD_TYPE_NLIFE);
//			facadeTempPolicy.setIsSeeMoney(isSeeMoney);
//
//			//添加暂存单
//			facadeTempPolicy=facadeTempPolicyService.saveFacadeTempPolicy(facadeTempPolicy);
//			logger.info("暂存单:"+facadeTempPolicy.getStagNo()+"生成");
//			
//			//添加投保单
//			facadeAppForm.setStagNo(facadeTempPolicy.getStagNo());
//			facadeAppForm=facadeAppFormService.saveFacadeAppForm(facadeAppForm);
//
//			//得到投保单号
//			String appNo=facadeAppForm.getAppNo();
//			logger.info("投保单:"+appNo+"生成");
//
//			//持久化投保人
//			facadeAppApplicant.setAppNo(appNo);
//			facadeAppApplicantService.saveFacadeAppApplicant(facadeAppApplicant);
//
//			//持久化被保人
//			if(appInsuredList.size()>0){
//				for(FacadeAppInsured insured:appInsuredList){
//					insured.setAppNo(appNo);
//					facadeAppInsuredService.saveFacadeAppInsured(insured);
//				}
//			}
//
//			//保存驾乘险信息
//			appformExtend.setAppNo(appNo);
//			facadeAppFormExtendDao.saveFacadeAppFormExtend(appformExtend);
//			
//			logger.info("暂存表,投保单表,被保人表,投保人表,驾乘险表插入成功");
//			
//			return facadeTempPolicy.getStagNo()+","+appNo;
//		}else{
//			//修改暂存单
//			facadeTempPolicy.setStagNo(facadeAppForm.getStagNo());
//			facadeTempPolicy.setIsSeeMoney(isSeeMoney);
//			facadeTempPolicy.setUpdateTime(DateUtil.getNowTimestamp());
//			facadeTempPolicyDao.updateTempPolicyNotNull(facadeTempPolicy);
//			
//			//修改投保单
//			facadeAppFormDao.updateFacadeAppFormNotNull(facadeAppForm);
//			
//			//修改被保人，因被保人信息无法编辑，且其个数需与座位数相同，所以每次走修改的逻辑将先删除当前投保单所有被保人，并重新添加
//			facadeAppInsuredDao.delFacadeAppInsuredByAppNo(facadeAppForm.getAppNo());
//			
//			//持久化被保人
//			if(appInsuredList.size()>0){
//				for(FacadeAppInsured insured:appInsuredList){
//					insured.setAppNo(facadeAppForm.getAppNo());
//					facadeAppInsuredService.saveFacadeAppInsured(insured);
//				}
//			}
//
//			//修改投保人
//			facadeAppApplicantDao.updateFacadeAppApplicantNotNull(facadeAppApplicant);
//
//			//修改驾乘险信息
//			facadeAppFormExtendDao.updateFacadeAppFormExtend(appformExtend);
//			
//			return "";
//		}
//		
//	}
//	
//	@Override
//	public FacadeAppFormExtend queryFacadeAppFormExtendByAppNo(String appNo)
//			throws Exception {
//		return facadeAppFormExtendDao.queryFacadeAppFormExtendByAppNo(appNo);
//	}
//
//	@Override
//	public void saveFacadeAppFormExtend(FacadeAppFormExtend extend)
//			throws Exception {
//		facadeAppFormExtendDao.saveFacadeAppFormExtend(extend);
//	}
//
//	@Override
//	public void updateFacadeAppFormExtend(FacadeAppFormExtend extend)
//			throws Exception {
//		facadeAppFormExtendDao.updateFacadeAppFormExtend(extend);
//	}
//	
//	@Override
//	public FacadeAppFormExtend queryFacadeAppNlifeFormExtendByAppNo(String appNo)
//			throws Exception {
//		return facadeAppFormExtendDao.queryFacadeAppNlifeFormExtendByAppNo(appNo);
//	}

}
